"""
在python中，使用def可以声明一个函数，完整的函数名是有函数名，参数及函数体组成的
声明函数的一般形式如下：
def 函数名([参数列表]):
    '函数语句'
    return '函数值'

其中参数列表和返回值不是必须的，return后面也可以不跟返回值，return也可以没有(默认返回None)
"""
def hello():
    print("hello")

hello()

# 定义函数带参数
def hello_user(name):
    print(f'hello,{name}')

hello_user('gao yang')

# 带多个参数
def sum(a,b):
    """
    求和函数
    :param a:
    :param b:
    :return:
    """
    res = a+b
    return res

r = sum(3,4)
print(r)

# 参数位置
def area(w,h):
    print(f'w={w},h={h},are:{w*h}')
    return w*h
area(2,3)

# 位置传参
area(w=12,h=15)
area(h=12,w=15)

# 默认值
def hello(name='Python'):
    print(f'hello,{name}')
hello()
hello('opdd')


# 可变数量传参 *ARGS
def function(*args):
    print(f'args:{args},类型：{type(args)}')

def fun2(*args,param1,param2='默认值'):
    print(f'args:{args},param1:{param1},param2:{param2}')
fun2(1,2,3,param1=4)

# 匿名函数LAMBDA
# lambda可以用来创建匿名函数，也可以将匿名函数赋给一个变量调用
# lambda 参数：表达式
area2 = lambda width,length: width*length

print(area2(11,22))